<?php

namespace component\system\system_role;

use common\ApiError;
use common\logic\Logic;


class SystemRole extends Logic
{
    /**
     * @var array
     */
    public $fields = [
        'id',
        'title',
        'desc',
        'auth',
        'menu',
        'create_time',
    ];

    /**
     * @return SystemRoleModel|\think\Model
     */
    protected function model()
    {
        return new SystemRoleModel();
    }

    /**
     * @param $id
     * @param $auth
     * @return bool|mixed|string
     */
    public function setAuth($id, $auth)
    {
        if (empty($id) || empty($auth)) {
            ApiError::instance()->message('参数错误');
            return false;
        }

        return $this->save([
            'id' => $id,
            'auth' => $auth
        ]);
    }

    /**
     * @param $id
     * @param $menu
     * @return bool|mixed|string
     */
    public function setMenu($id, $menu)
    {
        if (empty($id) || empty($menu)) {
            ApiError::instance()->message('参数错误');
            return false;
        }

        return $this->save([
            'id' => $id,
            'menu' => $menu
        ]);
    }

    /**
     * @param $role_id
     * @return bool|null
     */
    public function getRoleAuthList($role_id)
    {
        if (empty($role_id)) {
            ApiError::instance()->message('参数错误');
            return false;
        }

        $record = $this->find($role_id);

        if (empty($record)) {
            return null;
        }

        return $record['auth'] ?: null;
    }

    /**
     * @param $role_id
     * @return bool|null
     */
    public function getRoleMenuList($role_id)
    {
        if (empty($role_id)) {
            ApiError::instance()->message('参数错误');
            return false;
        }

        $record = $this->find($role_id);

        if (empty($record)) {
            return null;
        }

        return $record['menu'] ?: null;
    }
}